package scuts.core;


class Compose1_1 {
	public static function compose < A, B, C > (f2:B->C, f1:A->B):A->C
	{
		return function (a:A) return f2(f1(a));
	}
}
class Compose1_2 {
	public static function compose < A, B, C, D > (f2:C->D, f1:A->B->C):A->B->D
	{
		return function (a:A, b:B) return f2(f1(a, b));
	}
}
class Compose1_3 {
	public static function compose < A, B, C, D, E > (f2:D->E, f1:A->B->C->D):A->B->C->E
	{
		return function (a:A, b:B, c:C) return f2(f1(a, b, c));
	}
}
class Compose1_4 {
	public static function compose < A, B, C, D, E, F > (f2:E->F, f1:A->B->C->D->E):A->B->C->D->F
	{
		return function (a:A, b:B, c:C, d:D) return f2(f1(a, b, c, d));
	}
}
class Compose1_5 {
	public static function compose < A, B, C, D, E, F, G > (f2:F->G, f1:A->B->C->D->E->F):A->B->C->D->E->G
	{
		return function (a:A, b:B, c:C, d:D, e:E) return f2(f1(a, b, c, d, e));
	}
}